Currently, most Non-Volatile Memory Express (NVMe)-based Solid State Drives (SSDs) with Redundant Array of Independent Disks (RAID protection are done through external PCIe Add-In-Cards (AICs). To optimize bus bandwidth between the host CPU and the AIC RAID controller, the busses usually support X16 PCIe lanes. However, due to physical limitations of the standard form factor of PCIe cards only a small number of U.2 connectors—currently the preferred connector for NVMe SSDs—are supported by each AIC RAID controller: usually just two or four U.2 connectors.
In order to support up to 24 NVMe SSDs inside a 2U chassis, 6 AIC RAID controllers are required, resulting in 6 different RAID domains. This configuration adds cost and complexity to manage the 6 RAID domains. Further, each AIC RAID controller currently costs approximately $400. Hence, the entire RAID solution for even a single 2U chassis exceeds $2,400 just for the AIC RAID controllers, before factoring in the cost of the NVMe SSDs.
NVMe SSD adoption in the enterprise market has been limited due to lack of cost-effective RAID data protection of large data sets. Software RAID solutions are acceptable for relative small sets of data, but not for Big Data.
There are also other problems with using AIC RAID controllers:
1) As noted above, having multiple RAID domains inside the chassis increases the management complexity.
2) As a corollary to the RAID domain management complexity, the chassis does not have a single RAID domain, which would be preferable.
3) The central processing unit (CPU) needs to support a large number of PCIe lanes: 16 PCIe lanes per AIC RAID controller times 6 AIC RAID controllers per chassis=96 PCIe lanes just for the AIC RAID controllers. Only high end and much more expensive CPUs currently support this many PCIe lanes.
4) With each AIC RAID controller potentially drawing 25 Watts, 6 AIC RAID controllers increase the power consumption by up to 150 Watts per chassis.
5) Chassis tend to have only a few PCIe slots, potentially limiting the number of AIC RAID controllers that may be added and indirectly reducing the number of NVMe SSDs that may be subject to RAID protection in the chassis.
6) Software RAID solutions tend to support relatively few RAID levels, and increase the overhead on the CPU.
7) When used over a network, SSD accesses may be slower due to the time required to send data accesses across the network. Further, in some example, networked storage may require software RAID implementations, increasing the overhead on the CPU.
A need remains for a way to support Erasure Coding with large numbers of storage devices without the limitations imposed by AIC RAID controllers and software RAID solutions.